A composite software application utilizes features from multiple distributed software application components. The application components are deployed independently from the main composite application in a distributed fashion, across one or more servers and one or more operating system platforms. The composite application exchanges data with its application components via inter-process communication (e.g., using a defined communication protocol). In some instances, the application components may provide business functions. Use of application components can enable a vendor to offer functionality from a third party service provider (e.g., a third party payment processing system) and/or to share functionality between multiple composite software applications.
A requests submitted to a composite software application causes the composite software application to generate a response to the request, and may also cause the composite software application to generate additional outbound requests for the application components. For example, in an e-commerce environment, a composite application may include a web application on an e-commerce website, and application components for that composite application could include a third party credit card payment system, an inventory management system, etc. for processing orders. The inter-process communication could occur over a variety of protocols.
Regression testing is a type of software testing that seeks to uncover new software bugs (“regressions”) in existing software features after changes have been made. Regression testing is based on the understanding that updates to one portion of a software application can sometimes cause unpredictable behavior in other areas of the software application. Regression testing is used to detect such issues.